package com.atung.parking.service;

import com.atung.parking.config.result.ApiResult;
import com.atung.parking.config.result.PageInfoResponse;
import com.atung.parking.entity.BusParkingIotPackage;
import com.atung.parking.request.query.AppQueryParkingIotRequest;
import com.atung.parking.request.query.QueryParkingPackageRequest;
import com.atung.parking.request.save.SaveOrUpdateParkingPackageRequest;
import com.atung.parking.request.save.UpdatePackageStateRequest;
import com.atung.parking.response.page.AppParkingIotPackageResponse;
import com.atung.parking.response.page.ApprovalRecordResponse;
import io.swagger.annotations.ApiOperation;

import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * @author Administrator
 */
public interface ParkingPackageService {
    ApiResult saveParkingPackageService(SaveOrUpdateParkingPackageRequest request);

    PageInfoResponse<BusParkingIotPackage> queryPackageListService(QueryParkingPackageRequest request);

    ApiResult updatePackageStateService(UpdatePackageStateRequest request);

    ApiResult<List<AppParkingIotPackageResponse>> appRecommendParkingPackage(AppQueryParkingIotRequest appQueryParkingIotRequest);
    ApiResult<List<AppParkingIotPackageResponse>> appQueryParkingPackageService(AppQueryParkingIotRequest appQueryParkingIotRequest);

    List<ApprovalRecordResponse> queryApprovalParkingIotPackageListService(Long id);

    ApiResult appParkingPackageDetailsService(Long id);

    ApiResult  appParkingPackageConfirmationDetailsService(Long id);

    void exportParkingIotPackageService(QueryParkingPackageRequest request, HttpServletResponse httpServletResponse);

    ApiResult queryAvailableTimeService(Long id);
}
